<script>
	export default {
		onLaunch: function() {
			console.log('App Launch')
			// #ifdef MP-WEIXIN
			let that = this;
			that.autoUpdate();
			// #endif
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods:{
			// 检查更新
			autoUpdate: function() {
				let self = this;
				// 获取小程序更新机制兼容
				if (uni.canIUse('getUpdateManager')) {
					const updateManager = uni.getUpdateManager();
					//1. 检查小程序是否有新版本发布
					updateManager.onCheckForUpdate(function(res) {
						// 请求完新版本信息的回调
						if (res.hasUpdate) {
							//检测到新版本，需要更新，给出提示
							uni.showModal({
								title: '更新提示',
								content: '检测到新版本，是否下载新版本并重启小程序？',
								success: function(res) {
									if (res.confirm) {
										//2. 用户确定下载更新小程序，小程序下载及更新静默进行
										self.downLoadAndUpdate(updateManager);
									} else if (res.cancel) {
										//用户点击取消按钮的处理，如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
										uni.showModal({
											title: '温馨提示~',
											content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
											showCancel: false, //隐藏取消按钮
											confirmText: "确定更新", //只保留确定更新按钮
											success: function(res) {
												if (res.confirm) {
													//下载新版本，并重新应用
													self.downLoadAndUpdate(updateManager);
												};
											}
										});
									};
								}
							});
						};
					});
				} else {
					// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
					uni.showModal({
						title: '提示',
						content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
					});
				}
			},
			/**
			 * 下载小程序新版本并重启应用
			 */
			downLoadAndUpdate: function(updateManager) {
				let self = this;
				uni.showLoading();
				//静默下载更新小程序新版本
				updateManager.onUpdateReady(function() {
					uni.hideLoading();
					//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
					updateManager.applyUpdate();
				});
				updateManager.onUpdateFailed(function() {
					// 新的版本下载失败
					uni.showModal({
						title: '已经有新版本了哟~',
						content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
					});
				});
			}
		}
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import "@/uni_modules/uview-ui/index.scss";
	@import "@/common/public.css";
</style>
